﻿using System;
using System.Collections.Generic;

namespace Pap.Data
{
    /// <summary>
    /// 
    /// </summary>
    public interface IImageRepository : IRepository
    {
        /// <summary>
        /// Gets the image.
        /// </summary>
        /// <param name="imageId">The image id.</param>
        /// <returns></returns>
        IImage GetImage(Guid imageId);

        /// <summary>
        /// Inserts the image.
        /// </summary>
        /// <param name="image">The image.</param>
        void InsertImage(IImage image);

        /// <summary>
        /// Inserts the images.
        /// </summary>
        /// <param name="images">The images.</param>
        void InsertImages(IEnumerable<IImage> images);

        /// <summary>
        /// Finds the image.
        /// </summary>
        /// <param name="where">The where.</param>
        /// <returns></returns>
        IEnumerable<IImage> FindImage(System.Linq.Expressions.Expression<Func<IImage, bool>> where);

        /// <summary>
        /// Gets the image types.
        /// </summary>
        /// <returns></returns>
        IEnumerable<ILookUpEntity> GetImageTypes();

        /// <summary>
        /// Deletes the image.
        /// </summary>
        /// <param name="imageID">The image ID.</param>
        void DeleteImage(Guid imageID);

        /// <summary>
        /// Deletes the images.
        /// </summary>
        /// <param name="lst">The LST.</param>
        void DeleteImages(IEnumerable<IImage> lst);
    }
}
